package cn.iocoder.yudao.module.member.service.companytemplate;

import cn.iocoder.yudao.module.member.controller.admin.companytemplate.vo.CompanyTemplateAuditReqVo;
import cn.iocoder.yudao.module.member.controller.app.companytemplate.vo.CompanyTemplatePageReqVO;
import cn.iocoder.yudao.module.member.controller.app.companytemplate.vo.CompanyTemplateSaveReqVO;
import jakarta.validation.*;
import cn.iocoder.yudao.module.member.dal.dataobject.companytemplate.CompanyTemplateDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;

/**
 * 会员公司信息模板 Service 接口
 *
 * @author 芋道源码
 */
public interface CompanyTemplateService {

    /**
     * 创建会员公司信息模板
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createCompanyTemplate(@Valid CompanyTemplateSaveReqVO createReqVO);

    /**
     * 更新会员公司信息模板
     *
     * @param updateReqVO 更新信息
     */
    void updateCompanyTemplate(@Valid CompanyTemplateSaveReqVO updateReqVO);

    /**
     * 审核会员公司信息模板
     *
     * @param updateReqVO 更新信息
     */
    void auditCompanyTemplate(@Valid CompanyTemplateAuditReqVo updateReqVO);

    /**
     * 删除会员公司信息模板
     *
     * @param id 编号
     */
    void deleteCompanyTemplate(Long id);

    /**
     * 获得会员公司信息模板
     *
     * @param id 编号
     * @return 会员公司信息模板
     */
    CompanyTemplateDO getCompanyTemplate(Long id);

    /**
     * 获得会员公司信息模板分页
     *
     * @param pageReqVO 分页查询
     * @return 会员公司信息模板分页
     */
    PageResult<CompanyTemplateDO> getCompanyTemplatePage(CompanyTemplatePageReqVO pageReqVO);

}